7장. 자연언어 기초
AI 엔지니어링 선수지식 — 7장. 대상: 고등학생·학부 1년차.
7. 자연언어 기초
LLM 은 글자를 직접 못 읽어 숫자로 바꿔야 합니다. "문장 → 토큰 → 숫자 ID → 벡터(임베딩)" 이 변환 과정이 LLM 의 입구이며, EP2 의 핵심 전제입니다.
7.1 토큰화·BPE
문장을 의미 조각(토큰)으로 쪼개는 것이며, 자주 같이 나오는 글자쌍을 덩어리로 묶습니다(BPE).
비유 — 레고 분해. "안녕하세요" 를 ["안녕", "하세요"] 또는 ["안","녕","하","세","요"] 로 쪼갭니다. 자주 쓰는 덩어리일수록 한 조각이 됩니다.
직접 해보기 — 영어는 단어가 곧 토큰에 가깝지만, 한글은 글자/음절 단위로 더 잘게 쪼개집니다. "low", "lower", "lowest" 는 공통 "low" 를 한 토큰으로 묶습니다.
vocab = {"안녕": 0, "하세요": 1} # 어휘 사전(해시!)
print([vocab[t] for t in ["안녕", "하세요"]]) # [0, 1]
실무. API 요금이 토큰 수로 매겨집니다(EP2). 한글은 영어보다 토큰이 많이 나와 같은 내용도 비용이 더 듭니다.
LLM 연결. 모든 입력의 첫 단계이며, 토큰 수가 곧 비용·컨텍스트 한도입니다(EP5 의 128K 컨텍스트 = 토큰 12.8만 개).
더 깊이 — Hugging Face LLM Course
7.2 임베딩 (Embedding)
토큰 ID 를 의미를 담은 벡터(1.1)로 바꾸는 것으로, 비슷한 뜻은 비슷한 방향을 가집니다.
비유 — 의미 지도. "왕 - 남자 + 여자 ≈ 여왕" 처럼, 단어를 공간의 점으로 놓으면 의미 관계가 방향·거리로 표현됩니다.
직접 해보기 — "강아지" 와 "개" 벡터는 코사인 유사도(1.4)가 높지만(가까움), "강아지" 와 "자동차" 는 낮습니다(멀음).
dog = np.array([0.9, 0.1, 0.8]); car = np.array([0.1, 0.9, 0.05])
from numpy.linalg import norm
print(round(dog @ car / (norm(dog)*norm(car)), 2)) # 0.4 (멀음)
실무. RAG·검색·추천이 전부 임베딩 유사도(1.4·벡터DB)로, "의미 검색" 의 기반입니다.
LLM 연결. 토큰 → 임베딩이 Transformer 의 입력층이며, 섹션 1(벡터)이 여기서 실제로 쓰입니다(EP2·EP3).
7.3 위치 임베딩 (Positional Embedding)
단어의 순서 정보를 벡터에 새기는 법입니다(어텐션 자체는 순서를 모르기 때문).
비유 — 좌석 번호. "철수가 영희를 좋아해" 와 "영희가 철수를 좋아해" 는 단어는 같고 순서만 다릅니다. 위치 정보 없이는 둘을 구분 못 하므로, 각 단어에 몇 번째인지 표식을 붙입니다.
직접 해보기 — 단어 집합 {철수, 영희, 좋아해} 만으로는 누가 누구를 좋아하는지 알 수 없습니다. "철수=1번, 영희=3번" 같은 위치 정보를 더해야 의미가 확정됩니다.
실무. EP5 의 RoPE·YaRN·LongRoPE 가 전부 위치 임베딩 기법으로, 긴 컨텍스트(128K)를 가능케 하는 핵심 기술입니다.
LLM 연결. EP5 전체 주제(RoPE 회전·YaRN 보정)가 위치 임베딩이며, 1.6(고유값·회전)의 직관이 여기 쓰입니다.
더 깊이 — Stanford CS224N · Jay Alammar Illustrated Transformer
7.4 한글 NFC 정규화
한글이 겉보기에 같아도 내부 코드가 다를 수 있어, 하나의 표준형(NFC)으로 통일하는 것입니다.
비유 — 같은 글자 다른 조립. "한" 을 완성형 1글자로 저장하느냐(NFC), ㅎ+ㅏ+ㄴ 조합으로 저장하느냐(NFD)에 따라 컴퓨터는 다른 문자열로 봅니다.
직접 해보기 — 완성형 "한글" 과 분해형(NFD) "한글" 은 겉보기엔 같아도
==비교 시 False 입니다. NFC 정규화 후에야 True 가 됩니다.
import unicodedata
a = "한글"; b = unicodedata.normalize("NFD", a)
print(a == b, a == unicodedata.normalize("NFC", b)) # False True
실무. 맥(NFD)·윈도우(NFC) 파일명 차이, 한글 검색 버그의 단골 원인입니다. 본 youtubedu/youtubedown 도 NFC 정규화가 필수 룰입니다.
LLM 연결. 한글 토큰화·검색 정확도의 전제로, 정규화하지 않으면 같은 단어를 다른 토큰으로 처리합니다.
더 깊이 — Hugging Face LLM Course
7.5 정리
| 개념 | LLM 에서의 역할 |
|---|---|
| 토큰화·BPE | 입력 첫 단계 (비용·컨텍스트 단위) |
| 임베딩 | 토큰 → 의미 벡터 (입력층) |
| 위치 임베딩 | 순서 정보 (EP5 RoPE/YaRN) |
| NFC 정규화 | 한글 처리 정확도 |
한 문장으로, "문장 → 토큰 → ID → 임베딩(+위치)" 으로 글자를 벡터로 바꾸는 것이 LLM 의 입구이며, 섹션 1(벡터)·6(해시)이 여기서 합쳐집니다.
참고 자료 — Hugging Face LLM Course · Jay Alammar Illustrated Transformer · Stanford CS224N
클릭하거나 Space를 눌러 뒤집기